1. The Field of the Invention
The present invention relates to computer networks, and more specifically, to identifying an appropriate connection point for connecting to an application layer session.
2. Background and Relevant Art
Computer networks have enhanced our ability to communicate and access information by allowing one computer or device (hereinafter both referred to as a “computing system”) to communicate over a network with another computing system using electronic messages. When transferring an electronic message between computing systems, the electronic message will often pass through a protocol stack that performs operations on the data within the electronic message (e.g., packetizing, routing, flow control). The Open System Interconnect (“OSI”) model is an example of a networking framework for implementing a protocol stack.
The OSI model breaks down the operations for transferring an electronic message into seven distinct “layers,” each designated to perform certain operations in the data transfer process. While protocol stacks can potentially implement each of the layers, many protocol stacks implement only selective layers for use in transferring data across a network. When data is transmitted from a computing system, it originates at the application layer and is passed down to intermediate lower layers and then onto a network. When data is received from a network it enters the physical layer and is passed up to higher intermediate layers and then eventually received at the application layer. The application layer, the upper most layer, is responsible for supporting applications and end-user processes, such as, for example, electronic conferencing software.
The functionality of lower layers of a protocol stack is typically abstracted from the application layer. That is, application data is transferred to and from an application layer through the lower layers without exposing the functionality of the lower layers to the application layer. Abstraction can make it appear to a number of application layer processes at different computing systems that the application layer processes are directly connected to one another (when in fact lower layers in corresponding protocol stacks process data as the data transferred between the application layer processes). Accordingly, application layer processes may be viewed as logically connected regardless of the underlying physical connections that facilitate communication between the application layers processes.
Often, when computing systems are to communicate with each other, the computing systems will first establish a communication session. Establishment of a communication session can include establishing an application layer communication session, such as, for example, an electronic conference. To establish an electronic conference, conferencing applications (e.g., T.120 applications) at each of the computing systems logically connect to one another. The logical connections typically result in the computing systems being configured in a logical hierarchy, such as, for example, of a T.120 a conferencing session.
As depicted in FIG. 4B, a logically hierarchy can include a root computing system (or root node), one or more intermediate computing systems (or intermediate nodes), and one or more leaf computing systems (or leaf nodes). A root computing system is a computing system at the top of the logical hierarchy (e.g., node A). A leaf computing system is a computing system with no other computing systems below them in the logical hierarchy (e.g., nodes F, G, H, and D). An intermediate computer system is a computer system somewhere between the root computing system and a leaf computing system in the logical hierarchy (e.g., nodes B, E, and C).
A root computing system typically controls the transfer of conferencing data between the other computing systems in the logical hierarchy. Each computing system in a logically hierarchy can maintain link information for sending conferencing data to and receiving conferencing data from other computing systems that are logically connected to the computing system. That is, each computing system can maintain link information for parent and/or child computer systems. For example in FIG. 4B, node E can maintain link information for communicating with node A (parent) and nodes C and D (children).
Typically, conferencing data originates at an intermediate or leaf computing system in one branch of the logical hierarchy. The intermediate or leaf computing system transfers the conferencing data up to its parent computer system. When the parent computer system is not the root computer system, the parent computer system in turn transfers the conferencing data up to its parent computer system. The conferencing data is transferred form parent computer system to parent computer system until the conferencing data eventually reaches the root computer system. For example in FIG. 4B, conferencing data originating at node H can be transferred from node H, to node C, to node E, to node A (the root).
The root computing system can transfer received conferencing data down a logical hierarchy to intermediate and leaf computing systems in the logical hierarchy. For example in FIG. 4B, node A can transfer conferencing data down to nodes B and E. Node B can in turn transfer the conferencing data down to nodes F and G. Likewise, node E can in turn transfer the conferencing data down to nodes C and D. Node C can in turn transfer the conferencing data down to node H. Accordingly, during a typical conferencing session, conferencing data flows up to the root computing system and then down from the root computer system to other computer systems in the logical hierarchy. This results in all of the computer systems sharing the same tree, even if conferencing data originates at an intermediate or leaf computer system.
At times, a computing system participating in an electronic conferencing may invite another computing system to join the electronic conference. To invite a computing system to join an existing electronic conference, an inviting conferencing application (at an inviting computing system) sends an invitation message to joining conferencing application (at a joining computing system). To join the electronic conference, the joining conferencing application uses connection information contained in the invitation message to logically connect to the inviting conferencing application. For example in FIG. 4B, node H could join node C resulting in the logical connection between node C and node H.
The resources consumed when transferring conferencing data over some physical connections (e.g., wide area connections, firewalls, proxies, and bastion hosts) can be relatively expensive compared to resources consumed when transferring data over other physical connections (e.g., local area connections). The increased expense can be both financial and from a resource availability perspective. For example, it may cost more financially to transfer conferencing data through firewall 402, across wide area data link 403, and/or through firewall 404 than it costs financially to transfer conferencing data within local network 411 or local network 412. Further, the system and bandwidth resources consumed by transferring conferencing data (which can be bandwidth intensive) through firewall 402, across wide area data link 403, and/or through firewall 404 makes these consumed resources potentially unavailable to other modules for the duration of the electronic conference.
Unfortunately, establishment of a logical hierarchy can result in a number of logical connections spanning across more costly physical connections. For example, a number of the logical connections between the nodes in FIG. 4B (e.g., node B to node F, node B to node G, node A to node E, etc.) span across firewall 402, wide area link 403, and firewall 404. When multiple logical connections span the same physical connection, the same conferencing data may be repeatedly transferred across the physical connection. For example, conferencing data transferred from node A to node H would be transferred across firewall 402, wide area link 403, and firewall 404 at least three times. The conferencing data would be transferred from node A to node E (a first transfer), from node E to node C (a second transfer), and from node C to node H (a third transfer). Repeatedly transferring conferencing data across a more costly physical connection essentially wastes the resources of physical connection. Therefore systems, methods, computer program products, and data structures for joining an application layer session in a manner that promotes efficient use of lower layer resources would be advantageous.